home *** CD-ROM | disk | FTP | other *** search
- <!--- get the exportfile name for a CGI variable
- "exportfile=full_path_name"
- --->
- <CFSET SmBranch="HKEY_LOCAL_MACHINE\SOFTWARE\Allaire\ColdFusion\CurrentVersion">
- <cfregistry action="SET" branch="#SmBranch#" entry="SmExportCompleted" type="String" value="0">
-
- <cfoutput>
-
- <cfregistry action="GET"
- branch="HKEY_LOCAL_MACHINE\SOFTWARE\Allaire\ColdFusion\CurrentVersion"
- entry="RootDirectory"
- variable="rootDir"
- type="String">
-
- <!--- if you don't pass in the exportfile then use the 50 as default --->
- <cfif NOT isdefined("exportfile")>
- <cfset exportfile = "smpolicy50export.xml">
- </cfif>
-
- <cfset PolicyFile="#rootDir#\database\#exportfile#">
- </cfoutput>
-
-
- <cfset LOGFILE=replace(PolicyFile,".xml","_xml.log")>
-
- <!--- check siteminder password ---->
- <!--- <CFSET PASSWORD_KEY = "4p0L@r1$">
- <CFSET EcryptedPassword = cfusion_Encrypt( #password#, PASSWORD_KEY )>
- <CFREGISTRY ACTION=GET
- Branch="HKEY_LOCAL_MACHINE\SOFTWARE\Allaire\ColdFusion\CurrentVersion\Server"
- Entry="SecurityServerAdminPasswd"
- Variable="AdminPassword">
- <CFPARAM Name="AdminPassword" Default="NoPasswordRegistered">
- <CFIF CompareNoCase( EcryptedPassword, AdminPassword) IS NOT 0>
- <!--- The password is missing or invalid. --->
- <cfoutput>Password Invalid or not entered!!</cfoutput>
- <CFABORT>
- </CFIF> --->
-
- <!--- <userdirectory> --->
-
- <!--- Get user directory names names --->
- <CFTRY>
- <CFFILE ACTION="Write"
- FILE="#PolicyFile#"
- OUTPUT="<policystore>">
- <CFFILE ACTION="Write" FILE="#LOGFILE#" OUTPUT="Extracting Policy Store...
- ">
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Write" FILE="#LOGFILE#" OUTPUT="Unable to write to #PolicyFile#">
- </CFCATCH>
- </CFTRY>
-
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETUSERDIRECTORY QUERY=UserDirectories>
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT="<userdirectories>">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="
- USERDIRECTORIES
- ">
-
- <!--- Get descriptions --->
- <CFLOOP Query="UserDirectories">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Extracting userdirectory #UserDirectories.Name# ...">
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETUSERDIRECTORY QUERY=UserDirectory NAME=#UserDirectories.Name# >
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT="<userdir>
- <name>#UserDirectories.Name#</name>
- <desc>#UserDirectory.description#</desc>
- <server>#UserDirectory.server#</server>
- <username>#UserDirectory.UserName#</username>
- <password>#UserDirectory.Password#</password>
- <secureconn>#UserDirectory.secureconnect#</secureconn>
- <namespace>">
- <CFSET NameSpace = UserDirectory.type>
- <CFIF NameSpace IS 'LDAP:'>
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT=" <name>LDAP</name>
- <SearchRoot>#UserDirectory.search_root#</SearchRoot>
- <LookupStart><![CDATA[#UserDirectory.lookup_start#]]></LookupStart>
- <LookupEnd>#UserDirectory.lookup_end#</LookupEnd>
- <SearchTimeout>#UserDirectory.timeout#</SearchTimeout>
- <SearchResults>#UserDirectory.results#</SearchResults>
- <SearchScope>#UserDirectory.search_scope#</SearchScope>
- ">
- <CFELSEIF NameSpace IS 'ODBC:' >
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETODBCQUERYSCHEME QUERY=odbcScheme NAME=#UserDirectories.Name# >
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT=" <name>ODBC</name>
- <odbcschemename>#UserDirectories.Name#</odbcschemename>
- <odbcschemedesc>#odbcScheme.description#</odbcschemedesc>
- <authenticateuser>#odbcScheme.SQLAUTHUSER#</authenticateuser>
- <enumerate>#odbcScheme.SQLENUM#</enumerate>
- <getgroupproperty>#odbcScheme.SQLGETGROUPPROP#</getgroupproperty>
- <getgroupproperties>#odbcScheme.SQLGETGROUPPROPS#</getgroupproperties>
- <getusergroups>#odbcScheme.SQLGETGROUPS#</getusergroups>
- <getuserorgroupinfo>#odbcScheme.SQLGETOBJINFO#</getuserorgroupinfo>
- <getuserproperty>#odbcScheme.SQLGETUSERPROP#</getuserproperty>
- <getuserproperties>#odbcScheme.SQLGETUSERPROPS#</getuserproperties>
- <inituser>#odbcScheme.SQLINITUSER#</inituser>
- <isgroupmember>#odbcScheme.SQLISGROUPMEMBER#</isgroupmember>
- <lookup>#odbcScheme.SQLLOOKUP#</lookup>
- <lookupgroups>#odbcScheme.SQLLOOKUPGROUP#</lookupgroups>
- <lookupusers>#odbcScheme.SQLLOOKUPUSER#</lookupusers>
- <setgroupproperty>#odbcScheme.SQLSETGROUPPROP#</setgroupproperty>
- <setuserproperty>#odbcScheme.SQLSETUSERPROP#</setuserproperty>">
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to Extract ODBC Scheme for #UserDirectories.Name#">
- </CFCATCH>
- </CFTRY>
- <CFELSE>
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT=" <name>NT</name>">
- </CFIF>
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="... Completed">
-
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT=" </namespace>
- </userdir>">
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to Extract User Directoy #UserDirectories.Name#">
- </CFCATCH>
- </CFTRY>
-
- </CFLOOP>
- <CFFILE ACTION="Append"
- FILE="#PolicyFile#"
- OUTPUT="</userdirectories>">
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to Extract User Directories">
- </CFCATCH>
- </CFTRY>
-
- <!--- <Security Contexts> --->
- <!--- Get Security Contexts names --->
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETSECURITYCONTEXT QUERY=SecurityContexts>
- <CFFILE ACTION="Append"
- FILE=#PolicyFile#
- OUTPUT="<securitycontexts>">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="
- SECURITYCONTEXTS
- ">
- <!--- Get descriptions --->
- <CFLOOP Query="SecurityContexts">
- <CFTRY>
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Extracting Security Context #SecurityContexts.Name# ... ">
-
- <CFNewInternalAdminSecurity ACTION=GETSECURITYCONTEXT NAME="#SecurityContexts.Name#" QUERY=SecurityContext>
-
- <CFFILE ACTION="Append"
- FILE=#PolicyFile#
- OUTPUT="<securitycontext>
- <name>#SecurityContexts.Name#</name>
- <description>#SecurityContext.Description#</description>">
- <CFSET ContextBranch="HKEY_LOCAL_MACHINE\SOFTWARE\Allaire\ColdFusion\CurrentVersion\Security\#SecurityContexts.Name#">
- <CFREGISTRY ACTION=GET Branch="#ContextBranch#" VARIABLE="ProtectAll" Entry="ProtectAll" Type="STRING" >
- <CFIF ParameterExists( ProtectAll ) AND ProtectAll>
- <CFFILE ACTION="Append" FILE=#PolicyFile# OUTPUT="<protectall>Yes</protectall>">
- <CFELSE>
- <CFFILE ACTION="Append" FILE=#PolicyFile# OUTPUT="<protectall>No</protectall>">
- </CFIF>
- <!--Get Security Context Realms-->
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETSECURITYREALM Directory="#SecurityContexts.Name#" QUERY="ApplyRealmList">
- <CFLOOP Query="ApplyRealmList">
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<realm><name>#ApplyRealmList.Name#</name>
- <description>#ApplyRealmList.Description#</description></realm>">
- </CFLOOP>
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to extract Security Realms for #SecurityContexts.Name#">
- </CFCATCH>
- </CFTRY>
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETRULE DIRECTORY="#SecurityContexts.Name#" QUERY="Rules">
- <CFLOOP Query="Rules">
- <CFSET ruleaction = "">
- <CFIF #Rules.Type# IS "CustomTag">
- <CFSET ruleaction="" >
- </CFIF>
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<rule><name>#Rules.Name#</name>
- <description>#Rules.Description#</description>
- <type>#Rules.Type#</type>
- <resource>#Rules.RESOURCE#</resource>">
-
- <CFIF #Rules.Type# IS "CustomTag">
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<action>#ruleaction#</action></rule>">
- <cfelse>
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<action>#Rules.ACTION#</action></rule>">
- </CFIF>
- </CFLOOP>
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to extract Rules for #SecurityContexts.Name#">
- </CFCATCH>
- </CFTRY>
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETUSERDIRECTORYFORCONTEXT NAME="#SecurityContexts.Name#" QUERY="UD">
- <CFLOOP Query="UD">
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<userdirectory><name>#UD.directory#</name>
- </userdirectory>">
- </CFLOOP>
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to extract UserDirectories for #SecurityContexts.Name#">
- </CFCATCH>
- </CFTRY>
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETPOLICY DIRECTORY="#SecurityContexts.Name#" QUERY="Policies">
- <cfset sc="#SecurityContexts.Name#">
- <CFLOOP Query="Policies">
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<policy><name>#Policies.Name#</name>
- <description>#Policies.Description#</description>">
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETRULEFORPOLICY DIRECTORY="#sc#" NAME="#Policies.Name#" QUERY="PR">
- <cfloop query="PR">
- <CFFILE ACTION="Append" FILE=#PolicyFile# OUTPUT="<rule><name>#PR.name#</name>
- </rule>">
- </CFLOOP>
- <CFCATCH>
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to extract Rules for Policy #Policies.Name# under #SecurityContexts.Name#">
- </CFCATCH>
- </CFTRY>
- <CFTRY>
- <CFNewInternalAdminSecurity ACTION=GETUSERDIRECTORYFORCONTEXT NAME="#sc#" QUERY=UD>
- <CFLOOP Query="UD">
- <CFNewInternalAdminSecurity ACTION=GETUSERFORPOLICY DIRECTORY="#sc#" QUERY="PolicyUsers" NAME="#Policies.Name#" USER="#UD.directory#">
- <CFLOOP Query="PolicyUsers">
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="<user><name>#PolicyUsers.user#</name>
- <directory>#PolicyUsers.directory#</directory>
- </user>">
- </CFLOOP>
- </CFLOOP>
- <CFCATCH>
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to extract UserDirectories for Policy #Policies.Name# under #SecurityContexts.Name#">
- </CFCATCH>
- </CFTRY>
- <CFFILE ACTION="Append" FILE=#PolicyFile#
- OUTPUT="</policy>">
- </CFLOOP>
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to extract Policies for #SecurityContexts.Name#">
- </CFCATCH>
- </CFTRY>
- <CFFILE ACTION="Append"
- FILE=#PolicyFile#
- OUTPUT="</securitycontext>">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="... Completed">
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to Extract Security Context #SecurityContexts.Name#">
- </CFCATCH>
-
- </CFTRY>
- </CFLOOP>
- <CFFILE ACTION="Append"
- FILE=#PolicyFile#
- OUTPUT="</securitycontexts></policystore>">
- <CFCATCH TYPE="Any">
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="Unable to Extract Security Contexts">
- </CFCATCH>
- </CFTRY>
- <CFFILE ACTION="Append" FILE="#LOGFILE#" OUTPUT="
- ... Completed Policy Store!!!">
- <cfregistry action="SET" branch="#SmBranch#" entry="SmExportCompleted" type="String" value="1">